『From Objects to Functions』
https://gyazo.com/9535056f80e95647db69f002f5c31b21
2023/4/18
関数型やっていこうね、という本
目次を眺めるとFunctorとかMonadも出てくる
KotltinでMonad作ってやるの?mrsekut.icon
F#のやつと同じ出版社だmrsekut.icon
About This Book
Introduction: Why Functional Programming?
Why Kotlin?
Defining Functional Programming
Unlearning Object-Oriented Programming
Recap
Preparing a New Application
Defining the Sample Application
Letting Tests Guide the Development
Setting Up the Zettai Project
Making Unit Tests Functional
Recap
Exercises
Using Functions to Handle HTTP Requests
Kicking Off the Project
Serving HTML Pages Functionally
Starting Zettai
Designing with Arrows
Serving Lists from a Map
Recap
Exercises
Functional Testing and Domain Modeling
Improving the Acceptance Tests
Using Higher-Order Functions
Separating the Domain from the Infrastructure
Driving the Tests from the Domain
Converting DDT to Pesticide
Recap
Exercises
Connecting the Domain to Adapters
Starting a New Story to Modify a List excerpt
Using Functional Dependency Injection
Debugging Functional Code
Functional Domain Modeling
Recap
Exercises
Using Events to Modify the State
Creating and Displaying To-Do Lists
Storing the State Changes
Unleashing the Power of Recursion
Working with Mutable Entities
Discovering the Monoid
Recap
Exercises
Executing Commands to Generate Events
Creating a New List
Using Commands to Change the State
Modeling the Domain with States and Events
Writing Functional State Machines
Connecting the Hub
Understanding Commands and Events Better
Recap
Exercises
Handling Errors Functionally
Handling Errors Better
Learning Functors and Categories
Using Functors to Handle Errors
Recap
Exercises
Using Functors to Project Events
Projecting Our Events
Running Queries
Thinking in Terms of Functors
Recap
Exercises
Using Monads to Persist Data Safely
Persisting Safely
Accessing the Database with Kotlin
Accessing Remote Data in a Functional Way
Exploring the Power of Monads
Recap
Exercises
Reading Context to Handle Commands
Accessing the Database with Monads excerpt
Handling Commands with Context Reader
Querying Projections from Database
Modeling the Domain with Event Sourcing
Recap
Exercises
Validating Data with Applicatives
Renaming a List
Transforming Functions with Two Parameters
Validating with Validations
Combining Functors with Applicatives
Improving the User Interface
Recap
Exercises
Monitoring using Functional Concurrency
Making Json Functional
Understanding Monitoring and Logging
Parallelizing Operations with Async
Finishing the application
Adding Drag’n’Drop
Structured Monitoring
Recap
Exercises
Designing a Functional Architecture
Understanding Modular Architecture
Functional Micro-services
Distributing Commands and Queries
Final considerations
What Is Functional Programming
Getting a Taste of Functional Programming
Achieving Referential Transparency
Think in Morphisms
Recap
About Functional Kotlin
Setting Up Kotlin
Kotlin syntax sugar
Kotlin type system
Kotlin DSL syntax
Concurrency and Performance
About the Exercises
Exercises for chapter 1
Exercises for chapter 2
Exercises for chapter 3
Exercises for chapter 4
Exercises for chapter 5
Exercises for chapter 6
Exercises for chapter 7
Exercises for chapter 8
Exercises for chapter 9
Exercises for chapter 10
Exercises for chapter 11
A Pinch of Theory
Definition of a Category
Morphisms
Algebraic Data Types
Monoid
Functor